home *** CD-ROM | disk | FTP | other *** search
/ Chip 1997 December / CHIP Turkiye Aralık 1997.iso / internet / lsmirc61.exe / evparts.in_ / evparts.in
Encoding:
INI File  |  1997-09-20  |  13.7 KB  |  293 lines

  1. [script]
  2. n0=;
  3. n1=;          this section deals with all joining and leaving from channels,
  4. n2=;          i.e. on join, on part, on quit, on kick and associated tasks,
  5. n3=;          such as clone/join flood/mass kick detection
  6. n4=;
  7. n5=alias account {
  8. n6=  if ix.netcom.com isin $1 return 4
  9. n7=  elseif netcom isin $1 return 1
  10. n8=  elseif ($isnumericip($1)) return 2
  11. n9=  elseif ((1 !isin $1) && (2 !isin $1) && (3 !isin $1) && (4 !isin $1) && (5 !isin $1) && (6 !isin $1) && (7 !isin $1) && (8 !isin $1) && (9 !isin $1) && (0 !isin $1)) return 3
  12. n10=  return 4
  13. n11=}
  14. n12=alias nonum return $right($1,$calc($len($1) - 1))
  15. n13=alias jtxt if (%urd) { z | echo 1 $me $2 $+ : 3,0 $+ $3 $+ : $1 ( $+ $4 $+ ) }
  16. n14=alias banned {
  17. n15=  ; /* shithead matches a ban... gotta kick and ban him */
  18. n16=  set %chans $readini $ul whereban $ma($1)
  19. n17=  if ((%chans = $null) || ($2 isin %chans)) {
  20. n18=    set %reason $readini $ul whyban $ma($1)
  21. n19=    mode $2 +b-o $ma($1) $1
  22. n20=    if %reason != $null kick $2 $1 banned: %reason
  23. n21=    else kick $2 $1 %default
  24. n22=    writeini $ul lastused $ma($1) $ctime
  25. n23=    rtb $ma(%nick) $2
  26. n24=    if (%ekick) {
  27. n25=      if (%ckick) set %temp $2
  28. n26=      else set %temp -a
  29. n27=      altech %temp %dis3 $+ Shitlisted User! %dis4 Kicking $1 from $2
  30. n28=      alert
  31. n29=    }
  32. n30=  }
  33. n31=  else { altech $2 %dis3 $+ Warning! %dis4 matches ban on $ma($1) $+ , but its not banned on $2 }
  34. n32=}
  35. n33=alias newpeak {
  36. n34=  set %highcount [ $+ [ $1 ] ] $nick($1,0)
  37. n35=  set %whenpeak [ $+ [ $1 ] ] $realtime $+ , $day $adate
  38. n36=  if (%peaknotice [ $+ [ $1 ] ] ) {
  39. n37=    raw -q notice $1 :New peak at $nick($1,0) for $1 ( $+ $realtime $+ , $day $adate $+ )
  40. n38=    raw -q notice $me :New peak at $nick($1,0) for $1 ( $+ $realtime $+ , $day $adate $+ )
  41. n39=  }
  42. n40=  altech -a %dis10 $+ New peak at $nick($1,0) for $1 ( $+ $realtime $+ , $day $adate $+ )
  43. n41=}
  44. n42=alias checkpeak {
  45. n43=  if %highcount [ $+ [ $1 ] ] = $null newpeak $1
  46. n44=  else if ($nick($1,0) > %highcount [ $+ [ $1 ] ] ) newpeak $1
  47. n45=}
  48. n46=alias getkey set %key [ $+ [ $1 ] ] $channel($1).key
  49. n47=alias joinperform {
  50. n48=  if (%haveoptions [ $+ [ $1 ] ] ) set %chan $1
  51. n49=  else set %chan Unspecified_Channels
  52. n50=  %i = 0
  53. n51=  :nx
  54. n52=  inc %i
  55. n53=  set %temp $readini $mircdiroptions\options.ini OnJoin  [ [ %chan ] $+ [ %i ] ]
  56. n54=  if (%temp != $null) { .timer 1 %i %temp | goto nx }
  57. n55=}
  58. n56=alias ijoined {
  59. n57=  if $1 = %rchan halt
  60. n58=  set %updatedial [ $+ [ $1 ] ] $false
  61. n59=  unset %tviknowimbanned [ $+ [ $1 ] ]
  62. n60=  .timer 1 1 getkey $1
  63. n61=  set %tvfb [ $+ [ $1 ] ] $false
  64. n62=  set %tvimanop [ $+ [ $1 ] ] $false | .auser 70 $me | who $1
  65. n63=  set %myadr $a5($me) | unset %tvnchg* | unset %joins*
  66. n64=  unset %nk* | unset %conn* | unset %tvtxtfl*
  67. n65=  .timer 1 2 if ($me isop $1) emode $1
  68. n66=  joinperform $1
  69. n67=  if (%idlekick [ $+ [ $1 ] ] ) remini $mircdiridle.ini $1
  70. n68=  if %ticks [ $+ [ $1 ] ] != $null altech $1 %dis10 $+ Join synced for $1 in $calc(($ticks - (%ticks [ $+ [ $1 ] ] )) / 1000) seconds
  71. n69=  unset %ticks [ $+ [ $1 ] ]
  72. n70=  altech $1 %dis10 $+ Updating internal address list for $1 | .timer 1 3 ckmd $1
  73. n71=  remini $mircdirrepeat.ini $1
  74. n72=}
  75. n73=on 1:KICK:#:{
  76. n74=  log Kicked: $knick was kicked from $chan by $fulladdress ( $+ $strip($1-) $+ )
  77. n75=  if (%urd) { z | echo 1 $me $chan $+ : 3,0 $+ $knick was kicked by $nick ( $+ $1- $+ ) }
  78. n76=  if ($knick = $me) { 
  79. n77=    set %tvimanop [ $+ [ $chan ] ] $false | set %icmpnick $nick | .timer 1 60 unset %icmpnick
  80. n78=    altech -s %dis10 $+ You have been kicked off $chan by $nick
  81. n79=    set %ticks [ $+ [ $chan ] ] $ticks
  82. n80=    if $nick != ChanServ {
  83. n81=      echo 3 -s Looking up address...
  84. n82=      .enable #autoicmp | userhost $nick
  85. n83=    }
  86. n84=    if (%altrejoin) {
  87. n85=      ; alternate auto-rejoin routine, which can re-join a keyed channel
  88. n86=      unset %ticks [ $+ [ $chan ] ]
  89. n87=      if (%key [ $+ [ $chan ] ]  != $null) { altech -s %dis10 $+ Attempting to rejoin $chan $+ ... | .timer 1 2 join $chan %key [ $+ [ $chan ] ] }
  90. n88=      else { altech -s %dis10 $+ Attempting to rejoin $chan $+ ... | .timer 1 1 join $chan }
  91. n89=    }
  92. n90=    dh
  93. n91=  }
  94. n92=  if (%haveoptions [ $+ [ $chan ] ] ) set %kickchan $chan
  95. n93=  else set %kickchan other
  96. n94=  if (($me isop $chan) && (%massdeop [ $+ [ %kickchan ] ] )) {
  97. n95=    if (($isop($nick,$chan)) && (%opexkick [ $+ [ %kickchan ] ] )) goto skip
  98. n96=    if ($notmaster($nick,$chan)) {
  99. n97=      if (%kicks [ $+ [ $a3($nick) ] ] >= 2) { 
  100. n98=        adeop $a3($nick) $chan
  101. n99=        kickall $a3($nick) $chan %masskickmsg
  102. n100=        if (%ekick) {
  103. n101=          if (%ckick) set %temp $chan
  104. n102=          else set %temp -a
  105. n103=          altech %temp %dis3 $+ Mass Kick! %dis4 Kicking $nick from $chan
  106. n104=        }
  107. n105=        if (%smk = ding) ding
  108. n106=        elseif (%smk = speak) speak mass kick, kicking $nick from $nonum($chan)
  109. n107=        elseif (%smk != none) splay %smk
  110. n108=      }
  111. n109=      else { inc %kicks [ $+ [ $a3($nick) ] ] | .timer 1 10 unset %kicks [ $+ [ $a3($nick) ] ] }
  112. n110=    }
  113. n111=  }
  114. n112=  :skip
  115. n113=  if ($isfriend($knick,$chan)) lastseen $knick
  116. n114=  elseif (%idlekick [ $+ [ $chan ] ] ) remini $mircdiridle.ini $chan $nick    
  117. n115=}
  118. n116=on +10:JOIN:#: if (($me isop $chan) && (%banlist)) banned $nick $chan
  119. n117=on 1:JOIN:#:{
  120. n118=  jtxt $nick $chan Joined $address
  121. n119=  if ($nick = $me) { ijoined $chan | halt }
  122. n120=  elseif ($isfriend($nick,$chan)) {
  123. n121=    if $ulevel = 70 {
  124. n122=      if (%uech) altech $chan %dis5 $+ $nick (your clone) has joined $chan
  125. n123=      else altech %dis5 $+ $nick (your clone) has joined $chan
  126. n124=      if (%sjoin = ding) ding
  127. n125=      elseif (%sjoin = speak) speak $nick $+ , your clone, has joined $nonum($chan)
  128. n126=      elseif (%sjoin != none) splay %sjoin
  129. n127=    }
  130. n128=    else {
  131. n129=      if (%uech) altech $chan %dis5 $+ $nick ( $+ $wordlevel($ulevel) $+ ) has joined $chan
  132. n130=      else altech %dis5 $+ $nick ( $+ $wordlevel($ulevel) $+ ) has joined $chan
  133. n131=      if (%sjoin = ding) ding
  134. n132=      elseif (%sjoin = speak) speak $nick, $wordlevel($ulevel) $+ , has joined channel $nonum($chan)
  135. n133=      elseif (%sjoin != none) splay %sjoin
  136. n134=    }
  137. n135=    set %rn $rnick.nick($nick) | lastseen $nick
  138. n136=    if ((%rn != $nick) && (%rn != $null)) { 
  139. n137=      if (%uech) altech $chan %dis5 $+ $nick is really %rn $+ !
  140. n138=      else altech %dis5 $+ $nick is really %rn $+ !
  141. n139=    }
  142. n140=    if ((%autogreet) && ($ulevel != 70)) {
  143. n141=      if (%tvjustgreeted [ $+ [ $a3($nick) ] ] != $true) {
  144. n142=        set %tvjustgreeted [ $+ [ $a3($nick) ] ] $true
  145. n143=        .timer 1 60 unset %tvjustgreeted [ $+ [ $a3($nick) ] ]
  146. n144=        if (%infolines) {
  147. n145=          set %info $readini $ul info %rn
  148. n146=          if %info != $null msg $chan %greetstart $+ $nick $+ %greetend 1,0( $+ %info $+ )
  149. n147=          else msg $chan %greetstart $+ $nick $+ %greetend
  150. n148=        }
  151. n149=        else msg $chan %greetstart $+ $nick $+ %greetend
  152. n150=      }
  153. n151=    }
  154. n152=  }
  155. n153=  if (%haveoptions [ $+ [ $chan ] ] ) set %joinchan $chan
  156. n154=  else set %joinchan other  
  157. n155=  if ($me isop $chan) && ($isfriend($nick,$chan)) {
  158. n156=    if ((($ulevel = 60) || ($ulevel = 70))) {
  159. n157=      if ((%opbots [ $+ [ %joinchan ] ] ) || (%opmasters [ $+ [ %joinchan ] ] ) || (%opops [ $+ [ %joinchan ] ] )) mode $chan +o $nick
  160. n158=      elseif (%voiceall [ $+ [ %joinchan ] ] ) mode $chan +v $nick
  161. n159=    }
  162. n160=    elseif $ulevel = 50 {
  163. n161=      if ((%opmasters [ $+ [ %joinchan ] ] ) || (%opops [ $+ [ %joinchan ] ] )) mode $chan +o $nick
  164. n162=      elseif (%voiceall [ $+ [ %joinchan ] ] ) mode $chan +v $nick
  165. n163=    }
  166. n164=    elseif $ulevel = 40 {
  167. n165=      if (%opops [ $+ [ %joinchan ] ] ) mode $chan +o $nick
  168. n166=      elseif (%voiceall [ $+ [ %joinchan ] ] ) mode $chan +v $nick
  169. n167=    }
  170. n168=    elseif ((%autovoice [ $+ [ %joinchan ] ] ) || (%voiceall [ $+ [ %joinchan ] ] )) mode $chan +v $nick
  171. n169=  }
  172. n170=  elseif ($me isop $chan) {
  173. n171=    if ((%voiceall [ $+ [ %joinchan ] ] ) && ($ulevel != 15)) mode $chan +v $nick
  174. n172=  }
  175. n173=  if (%peak [ $+ [ %joinchan ] ] ) checkpeak $chan
  176. n174=  log Joined: $fulladdress joined $chan
  177. n175=  if (%havecustom [ $+ [ %joinchan ] ] ) {
  178. n176=    if ((%anyone [ $+ [ %joinchan ] ] ) || ($notfriend($nick,$chan))) {
  179. n177=      set %nick $nick
  180. n178=      if (%haveoptions [ $+ [ $chan ] ] ) $ro(CustomJoin, [ [ $chan ] $+ actual ] )
  181. n179=      else $ro(CustomJoin,Unspecified_Channelsactual)
  182. n180=    }
  183. n181=  }
  184. n182=  if (($isfriend($nick,$chan)) || ($ulevel = 70)) halt
  185. n183=  if (%autokick [ $+ [ $chan ] ] = on) { 
  186. n184=    mode $chan -o+b $nick $address($nick,4)
  187. n185=    kick $chan $nick %autokickmsg | rtb $address($nick,4) $chan | halt
  188. n186=  }
  189. n187=  if (%idlekick [ $+ [ %joinchan ] ] ) writeini $mircdiridle.ini $chan $nick $ctime
  190. n188=  if (%joinflood [ $+ [ %joinchan ] ] ) {
  191. n189=    inc %joins [ $+ [ $chan [ $+ [ $site ] ] ] ]
  192. n190=    .timer 1 %joinin unset %joins [ $+ [ $chan [ $+ [ $site ] ] ] ]
  193. n191=    if (($me isop $chan) && (%joins [ $+ [ $chan [ $+ [ $site ] ] ] ] >= %joinis)) { 
  194. n192=      kickban $a2($nick) $chan %joinfloodmsg
  195. n193=      rtb $a2($nick) $chan
  196. n194=      if (%ekick) {
  197. n195=        if (%ckick) set %temp $chan
  198. n196=        else set %temp -a
  199. n197=        altech %temp %dis3 $+ Join Flood! %dis4 Kick-Banned $nick ( $+ $a3($nick) $+ ) from $chan
  200. n198=      }
  201. n199=      if (%sjoinf = ding) ding
  202. n200=      elseif (%sjoinf = speak) join flood detected, kicking $nick
  203. n201=      elseif (%sjoinf != none) splay %sjoinf
  204. n202=    }
  205. n203=  }
  206. n204=  if ($me isop $chan) && (%clone [ $+ [ %joinchan ] ] ) {
  207. n205=    %n = 0
  208. n206=    :findclone
  209. n207=    inc %n
  210. n208=    set %nick $ialchan($a2($nick),$chan,%n).nick
  211. n209=    if %nick != $null {
  212. n210=      if ((%nick != $nick) && ($notfriend(%nick,$chan)) && ($a2(%nick) != $a2($me))) goto clone
  213. n211=      goto findclone
  214. n212=    }
  215. n213=  }  
  216. n214=  if (%whois [ $+ [ %joinchan ] ] ) {
  217. n215=    if ((($me isop $chan) && (%whoisopped [ $+ [ %joinchan ] ] )) || (%whoisalways [ $+ [ %joinchan ] ] )) {
  218. n216=      if (($nick != W) && ($nick != X) && ($nick != ChanServ) && ($nick != Q)) autowhois $nick
  219. n217=    }
  220. n218=  }
  221. n219=  if (($me isop $chan) && (%excclients [ $+ [ %joinchan ] ] )) {
  222. n220=    if (($nick != W) && ($nick != X) && ($nick != ChanServ) && ($nick != Q)) {
  223. n221=      set %nk [ $+ [ $site ] ] $nick | set %conn [ $+ [ $site ] ] 0 | account $site
  224. n222=      if $result = 4 who $site
  225. n223=      elseif (%eflood) {
  226. n224=        if $result = 1 echo -s 14 $+ $nick appears to be on a netcom shell, skipping ip check
  227. n225=        elseif $result = 2 echo -s 14 $+ $nick has a numeric ip, skipping ip check
  228. n226=        elseif $result = 3 echo -s 14 $+ $nick appears to be on a unix account, skipping ip check
  229. n227=      }
  230. n228=      .timer 1 15 unset %conn [ $+ [ $site ] ] | .timer 1 15 unset %nk [ $+ [ $site ] ]
  231. n229=    }
  232. n230=  }
  233. n231=  set %lv $readini $ul level $nick
  234. n232=  if ((%lv > 18) && (%lv < 65) && (%lv != $null) && ($gl($nick) = 1)) altech -a %dis3 $+ Imposter Alert! %dis4 $nick joined $chan $+ , but $a3($nick) is not known to belong to the real $nick
  235. n233=  halt
  236. n234=  :clone
  237. n235=  if (%ckick) set %temp $chan
  238. n236=  else set %temp -a
  239. n237=  if (%tvkclone [ $+ [ $site ] ] = yes) {
  240. n238=    ; hey, this guy had a clone kicked less than 60 seconds ago... lets ban him
  241. n239=    if %maxmodes != 4 { mode $chan -oo $nick %nick | mode $chan +bb $nick %nick $a2($nick) $a3($nick) }
  242. n240=    else mode $chan -oo+bb $nick %nick $a2($nick) $a3($nick)
  243. n241=    .timer 1 %bantime mode $chan -bb $a2($nick) $a3($nick)
  244. n242=    kickall $a2($nick) $chan %clonemsg
  245. n243=    kickall $a3($nick) $chan %clonemsg
  246. n244=    if (%ekick) altech %temp %dis3 $+ Mass Clones Detected! %dis4 Banning $a3($nick) and $a2($nick) on $chan
  247. n245=  }
  248. n246=  else {
  249. n247=    if (%kickclone [ $+ [ %joinchan ] ] ) {
  250. n248=      set %tvkclone [ $+ [ $site ] ] yes | .timer 1 60 unset %tvkclone [ $+ [ $site ] ]
  251. n249=      mode $chan +b %nick $+ !*@* | kick $chan %nick %ghostmsg | .timer 1 60 mode $chan -b %nick $+ !*@*
  252. n250=      if (%ekick) altech %temp %dis3 $+ Clone Detected! ( $+ %nick and $nick $+ ) %dis4 Kicking %nick from $chan
  253. n251=    }
  254. n252=    elseif (%noticeclone [ $+ [ %joinchan ] ] ) {
  255. n253=      raw -q notice $chan :4Clone Detected! 3( $+ %nick and $nick $+ )
  256. n254=      raw -q notice $me :4Clone Detected! 3( $+ %nick and $nick $+ )   
  257. n255=    }
  258. n256=    elseif (%ekick) altech %temp %dis3 $+ Clone Detected on $chan $+ ! %dis4 ( $+ %nick and $nick $+ )
  259. n257=  }
  260. n258=  if (%sclone = ding) ding
  261. n259=  elseif (%sclone = speak) speak clones detected on $nonum($chan)
  262. n260=  elseif (%sclone != none) splay %sclone
  263. n261=}
  264. n262=on 1:PART:#:{
  265. n263=  jtxt $nick $chan Left $address
  266. n264=  if $nick = $me {
  267. n265=    set %tvimanop [ $+ [ $chan ] ] $false
  268. n266=    if (%urd) { z | echo 3 $me You have left $chan }
  269. n267=  }
  270. n268=  elseif ($isfriend($nick,$chan)) lastseen $nick
  271. n269=  else {
  272. n270=    if (%idlekick [ $+ [ $chan ] ] ) remini $mircdiridle.ini $chan $nick
  273. n271=    set %lastpart [ $+ [ $chan ] ] $a3($nick)
  274. n272=  }
  275. n273=  log Part: $fulladdress left $chan
  276. n274=}
  277. n275=on 1:QUIT:{
  278. n276=  if (%urd) { z | echo 1 $me Signoff: $nick has left IRC ( $+ $1- $+ ) }
  279. n277=  log Quit: $nick quit IRC ( $+ $strip($1-) $+ )
  280. n278=  set %q 0
  281. n279=  :nx
  282. n280=  inc %q
  283. n281=  if $chan(%q) != $null {
  284. n282=    remini $mircdiridle.ini $chan(%q) $nick
  285. n283=    goto nx
  286. n284=  }
  287. n285=}
  288. n286=on 19:QUIT:{
  289. n287=  lastseen $nick
  290. n288=  if (%urd) { z | echo 1 $me Signoff: $nick has left IRC ( $+ $1- $+ ) }
  291. n289=  log Quit: $nick quit IRC ( $+ $strip($1-) $+ )
  292. n290=}
  293.